﻿Public Class frmGatunekMaterialuSzukanie

    '  Private mvarSzukajGatunku As clsSzukanieMaterialu
    Private mvarGatunek As clsSzukanie
    Private mvarDbHolder As clsDataBase
    Private mvarWyznUruchomienia As Boolean
    Private mvarNumerPozycji As Integer = 0

    Private mvarWyznFrm As Boolean
    Private mvarId As Integer = -1
    Public Zmiana As Boolean

    Public Sub New(ByVal WzynFrm As Boolean, ByVal Id As Integer)

        ' To wywołanie jest wymagane przez projektanta.
        InitializeComponent()

        ' Dodaj inicjację po wywołaniu funkcji InitializeComponent().

        mvarDbHolder = New clsDataBase(VAR_CONNECTION_PARAMETERS, VAR_ERROR_HANDLER)
        mvarNumerPozycji = 0
        mvarWyznFrm = WzynFrm
        mvarId = Id

    End Sub

    Private Sub Szukaj()

        Dim lvarCommand As String
        Dim lvarI As Integer
        Dim lvarWyzn As Boolean = False

        If txtNazwaPolska.Text = String.Empty And txtNazwaAngielska.Text = String.Empty And txtNazwaNiemiecka.Text = String.Empty And txtNorma.Text = String.Empty Then
            lvarCommand = String.Empty
        Else
            lvarCommand = lvarCommand + " WHERE"
            If txtNazwaPolska.TextLength > 0 Then
                lvarCommand = lvarCommand + " UPPER (gatunek.nazwa) LIKE UPPER ('" & txtNazwaPolska.Text & "%')"
                lvarWyzn = True
            End If
            If txtNazwaAngielska.TextLength > 0 Then
                If lvarWyzn = True Then
                    lvarCommand = lvarCommand + " AND"
                End If
                lvarCommand = lvarCommand + " UPPER (gatunek.nazwa_ang) LIKE UPPER ('" & txtNazwaAngielska.Text & "%')"
                lvarWyzn = True
            End If
            If txtNazwaNiemiecka.TextLength > 0 Then
                If lvarWyzn = True Then
                    lvarCommand = lvarCommand + " AND"
                End If
                lvarCommand = lvarCommand + " UPPER (gatunek.nazwa_niem) LIKE UPPER ('" & txtNazwaNiemiecka.Text & "%')"
                lvarWyzn = True
            End If
            If txtNorma.TextLength > 0 Then
                If lvarWyzn = True Then
                    lvarCommand = lvarCommand + " AND"
                End If
                lvarCommand = lvarCommand + " UPPER (gatunek.norma_wykonania) LIKE UPPER ('" & txtNorma.Text & "%')"
                lvarWyzn = True
            End If

        End If
        mvarGatunek = New clsSzukanie
        mvarGatunek.SzukajGatunku(mvarDbHolder, lvarCommand)

        dgvInformacje.Rows.Clear()
        If mvarGatunek.Gatunek.Count = 0 And mvarWyznUruchomienia = False Then
            MessageBox.Show("Nie ma takich materiałów.", "WIREMET")
        Else
            For Each lvarRow As clsInhGatunek In mvarGatunek.Gatunek
                lvarI += 1
                dgvInformacje.Rows.Add(lvarI, lvarRow.NazwaAng, lvarRow.Nazwa, lvarRow.NazwaNiem, lvarRow.NormaWykonania)
                dgvInformacje.Rows(lvarI - 1).Tag = lvarRow
            Next
        End If

        mvarWyznUruchomienia = False
        If dgvInformacje.Rows.Count > 0 Then
            dgvInformacje.ClearSelection()
            dgvInformacje.Rows.Item(mvarNumerPozycji).Selected = True

            If mvarNumerPozycji > 5 Then
                dgvInformacje.FirstDisplayedScrollingRowIndex = mvarNumerPozycji - 5
            Else
                dgvInformacje.FirstDisplayedScrollingRowIndex = 0
            End If
        End If

        If mvarWyznFrm Then
            ZnajdzGatunek()
        End If

    End Sub

    Private Sub ZnajdzGatunek()

        If dgvInformacje.Rows.Count > 0 Then
            For lvarI As Integer = 0 To dgvInformacje.Rows.Count - 1
                If CType(dgvInformacje.Rows.Item(lvarI).Tag, clsInhGatunek).Id = mvarId Then

                    dgvInformacje.ClearSelection()
                    dgvInformacje.Rows.Item(lvarI).Selected = True

                    If lvarI > 5 Then
                        dgvInformacje.FirstDisplayedScrollingRowIndex = lvarI - 5
                    Else
                        dgvInformacje.FirstDisplayedScrollingRowIndex = 0
                    End If
                    Exit For

                End If
            Next
        End If

    End Sub

    Private Sub dgvInformacje_CellMouseDoubleClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvInformacje.CellMouseDoubleClick

        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz materiał", "WIREMET")
        Else
            mvarNumerPozycji = dgvInformacje.SelectedRows(0).Index
            If mvarWyznFrm Then
                Zmiana = True
                Me.Close()
            Else
                Dim lvarId As Integer
                lvarId = CType(dgvInformacje.SelectedRows(0).Tag, clsInhGatunek).Id

                Dim lvarFrm As New frmGatunekMaterialu(lvarId)
                With lvarFrm
                    .ShowDialog()
                End With
            End If

           
        End If
    End Sub

    Private Sub cmdSzukaj_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSzukaj.Click
        Szukaj()
    End Sub

    Private Sub cmdWyczysc_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczysc.Click

        txtNazwaPolska.Text = String.Empty
        txtNazwaAngielska.Text = String.Empty
        txtNazwaNiemiecka.Text = String.Empty
        txtNorma.Text = String.Empty

    End Sub

    Private Sub cmdDodaj_Click(sender As System.Object, e As System.EventArgs) Handles cmdDodaj.Click

        Dim lvarFrm As New frmGatunekMaterialu(0)
        With lvarFrm
            .ShowDialog()
        End With

    End Sub

    Private Sub cmdEdytuj_Click(sender As System.Object, e As System.EventArgs) Handles cmdEdytuj.Click

        If dgvInformacje.Rows.Count = 0 Then
            MessageBox.Show("Wybierz materiał", "WIREMET")
        Else
            mvarNumerPozycji = dgvInformacje.SelectedRows(0).Index
            Dim lvarId As Integer
            lvarId = CType(dgvInformacje.SelectedRows(0).Tag, clsInhGatunek).Id
            Dim lvarFrm As New frmGatunekMaterialu(lvarId)
            With lvarFrm
                .ShowDialog()
            End With
        End If

    End Sub

    Private Sub cmdWyczyscInformacje_Click(sender As System.Object, e As System.EventArgs) Handles cmdWyczyscInformacje.Click
        dgvInformacje.Rows.Clear()
    End Sub

#Region "KeyPress"

    Private Sub txtNazwaPolska_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNazwaPolska.KeyPress
        If e.KeyChar = Char.ConvertFromUtf32(Keys.Enter) Then
            Szukaj()
        End If
    End Sub

    Private Sub txtNazwaAngielska_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNazwaAngielska.KeyPress
        If e.KeyChar = Char.ConvertFromUtf32(Keys.Enter) Then
            Szukaj()
        End If
    End Sub

    Private Sub txtNazwaNiemiecka_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNazwaNiemiecka.KeyPress
        If e.KeyChar = Char.ConvertFromUtf32(Keys.Enter) Then
            Szukaj()
        End If
    End Sub

    Private Sub txtNorma_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNorma.KeyPress
        If e.KeyChar = Char.ConvertFromUtf32(Keys.Enter) Then
            Szukaj()
        End If
    End Sub

#End Region

#Region "TextChanged"

    Private Sub txtNazwaPolska_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNazwaPolska.TextChanged
        mvarNumerPozycji = 0
    End Sub

    Private Sub txtNazwaAngielska_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNazwaAngielska.TextChanged
        mvarNumerPozycji = 0
    End Sub

    Private Sub txtNazwaNiemiecka_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNazwaNiemiecka.TextChanged
        mvarNumerPozycji = 0
    End Sub

    Private Sub txtNorma_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtNorma.TextChanged
        mvarNumerPozycji = 0
    End Sub

#End Region

    'Private Sub frmMaterialSzukanie_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
    '    mvarWyznUruchomienia = True
    '    cmdSzukaj.PerformClick()
    'End Sub

    Private Sub frmMaterialSzukanie_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        mvarDbHolder.Close()
    End Sub

    Private Sub frmGatunekMaterialuSzukanie_Load(sender As Object, e As EventArgs) Handles Me.Load
        mvarWyznUruchomienia = True
        Szukaj()
    End Sub

End Class